#include<stdio.h>
 
int m,n,k;
int stack[1007];      
int top=0;           
int wu=1,la=1;     
int b[1007];          
 
int main()
{
    scanf("%d%d%d",&m,&n,&k);
    while(k--)
    {
    	int flag=1; 
    	wu=1;la=1;
    	top=0; 
    	int i;
    	for(i=1;i<=n;i++)
    	  scanf("%d",&b[i]);
    	while(1)
    	{
    	
    		if(wu==b[la])
    		{
    			wu++;
    			la++;
			}
		
			else if(top!=0&&stack[top-1]==b[la])
			{
				top--;
				la++; 
			}
			else
			{
				if(wu>n)break;  //已经判断结束，就跳出循环 
				stack[top]=wu;  //元素入栈 
				top++;
				wu++;
				if(top>=m)
				{
					flag=0;
					break;
				}
			}
		}
		if(flag==0||top!=0)printf("NO\n");
		else printf("YES\n");
	}
    
	return 0;
}
